Skip to content

Conversation

@alexcasalboni
Copy link
Contributor

Checklist

  • I have read the Contributor Guide
  • I have read and agree to the Code of Conduct
  • I have added a description of my changes and why I'd like them included in the section below

Description of Changes

Details:

  • it's using the official HTTP Tracking API
  • Same logic and endpoint for page and track events
  • Different endpoint for user events
  • Always using GET requests with data in querystring (flattened)

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds the initial implementation of a Woopra component for Edgee, using Woopra’s HTTP Tracking API to forward page, custom track, and user-identify events via GET querystrings.

  • Introduces WoopraPayloadTrack and WoopraPayloadIdentify for serializing event and user data
  • Implements Guest methods in src/lib.rs to map Edgee events to Woopra GET requests
  • Adds component manifest, documentation, Makefile, CI workflows, and basic tests

Reviewed Changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/woopra_payload.rs Payload structs and custom serde serializers for Woopra prefixes
src/lib.rs Component logic for page/track/user events and corresponding tests
edgee-component.toml Component manifest with build and settings configuration
README.md Usage guide, quick start, and configuration options
Makefile Local build, test, and coverage targets
Cargo.toml Package metadata and dependencies
CONTRIBUTING.md Contributor guidelines
.github/workflows/wasm-build-release.yml Release workflow for building and uploading the WASM artifact
.github/workflows/check.yml CI checks: formatting, lint, build, and tests
.github/CODEOWNERS Codeowners configuration
Comments suppressed due to low confidence (2)

.github/workflows/check.yml:67

  • This check is looking for clickhouse.wasm, but the component builds woopra.wasm. Update the filename to match.
          if [ ! -f "./clickhouse.wasm" ]; then

src/woopra_payload.rs:292

  • This comment precedes serialize_cs_prefixed but mentions ce_. Update it to reflect the cs_ prefix.
// Helper function to serialize HashMap with "ce_" prefix

alexcasalboni and others added 4 commits June 23, 2025 18:01
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@alexcasalboni
Copy link
Contributor Author

I've tested this with:

edgee component test --event-type track --settings project_name=demo.edgee.app --make-http-request
edgee component test --event-type page --settings project_name=demo.edgee.app --make-http-request
edgee component test --event-type user --settings project_name=demo.edgee.app --make-http-request

and it works great 👌

Note: the default test event uses a very old timestamp (from Feb 2025), so the event is ingested but doesn't show up in the real-time dashboard :)

@alexcasalboni
Copy link
Contributor Author

Also tested on staging on demo.edgee.team and it's working great 👌

@alexcasalboni alexcasalboni merged commit ebd678e into main Jun 24, 2025
7 checks passed
@alexcasalboni alexcasalboni deleted the first-implementation branch June 24, 2025 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants